package com.yf.common.response;

import org.loulan.application.dragon.common.core.config.status.ResponseStatus;
import org.loulan.application.dragon.common.core.response.BaseResponse;

/*********************************************************
 ** 对象返回信息样式(例如get，post等获取数据的时候)
 ** <br><br>
 ** Date: Created in 2022/6/26 19:36
 ** @author loulan
 ** @version 0.0.0
 *********************************************************/
public class R<T> extends BaseResponse {

    private T data;

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    /**
     * 返回成功的响应体
     * @param       data 返回数据
     * @return
     * @exception
     * @author     :loulan
     * */
    public static <T> R<T> success(T data) {
        R r = new R<T>();
        r.setData(data);
        return r;
    }

    /**
     * 直接返回成功过的响应
     * @param
     * @return
     * @exception
     * @author     :loulan
     * */
    public static R success() {
        return success(null);
    }

    /**
     * 返回失败的响应数据
     * @param       msg 错误信息
     * @return
     * @exception
     * @author     :loulan
     * */
    public static <T> R<T> fail(String msg) {
        R r = new R<T>();
        r.setStatus(ResponseStatus.FAIL);
        r.setMsg(msg);
        return r;
    }
}
